/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.imptec.reportfly.report;

import com.imptec.reportfly.Util.Formateador;
import com.imptec.reportfly.Util.KLogManager;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.*;

/**
 *
 * @author WinDoctor
 */
public class ReporteCuentaCorrientePendiente 
{
        private Connection conn;
        private String driver = "";
        private String login = "";//"zeus_admin"; //usuario de acceso a MySQL
        private String password = "";//"zeus01"; //contraseña de usuario
        private String url = ""; //"jdbc:oracle:thin:@//192.168.1.215:1521/PLAT";
        private String id_contact;
        private String id_contact1;
        private Formateador formateador;
        private KLogManager kLogManager;
        
        public ReporteCuentaCorrientePendiente() throws Exception
        {    
            Properties file = new Properties();
            kLogManager=new KLogManager();
            try
        {
            file.load(new FileInputStream("C:\\Reporteador\\Reporte.ini"));
            driver = file.getProperty("DRIVER");
            url = file.getProperty("URL");
            login= file.getProperty("USER");
            password= file.getProperty("PASSWORD");
       
        }
        catch(FileNotFoundException e)
        {
            e.printStackTrace();
            kLogManager.logDebug("No se Encontro Archivo");
            throw new Exception("Error when trying to load ini file.");
        }
        catch(IOException e)
        {
            e.printStackTrace();
            kLogManager.logDebug("No se puede Leer Archivo");
            throw new Exception("Error when trying to load ini file.");
        }
                   
            try 
            {
                Class.forName("oracle.jdbc.OracleDriver"); //se carga el driver
                conn = DriverManager.getConnection(url,login,password);
                kLogManager.logDebug("Conexion Establecida OK!!");
            } 
            catch (ClassNotFoundException ex) 
            {
                kLogManager.logDebug("Error de Conexion: "+ex);
                ex.printStackTrace();
            } 
            catch (SQLException ex) 
            {
                kLogManager.logDebug("Error de Conexion: "+ex);
                ex.printStackTrace();
            }

        }
    
    public void runReporte(String fechaInicial, String fechaFinal, String cliente,String tipo)
    {
        try
        {         
            String master="";
            if(tipo=="negocio"){
            master = "C:\\Reporteador\\reportes\\CuentaCorrienteNegocioPendiente.jasper";
            }if(tipo=="real"){
            master = "C:\\Reporteador\\reportes\\CuentaCorrienteRealPendiente.jasper";
            }
            
            System.out.println("master" + master);
            if (master == null) 
            {                
                System.out.println("No encuentro el archivo del reporte maestro.");
                System.exit(2);
            } 

            JasperReport masterReport = null;
            try 
            {
                masterReport = (JasperReport) JRLoader.loadObject(master);
            } 
            catch (JRException e) 
            {
                System.out.println("Error cargando el reporte maestro: " + e.getMessage());
                System.exit(3);
            }              
            
            //este es el parámetro, se pueden agregar más parámetros
            //basta con poner mas parametro.put
            Map parametro = new HashMap();
            //
            
            parametro.put("id",formateador.formatDateForSQL(fechaInicial));
            parametro.put("id1",formateador.formatDateForSQL(fechaFinal)); 
            parametro.put("cli",cliente); 
            
          //  parametro.put("id",id_contact);
           // parametro.put("id1",id_contact1); 

            //Reporte diseñado y compilado con iReport
            JasperPrint jasperPrint = JasperFillManager.fillReport(masterReport,parametro,conn);

            //Se lanza el Viewer de Jasper, no termina aplicación al salir
            JasperViewer jviewer = new JasperViewer(jasperPrint,false);
            jviewer.setTitle("Cuenta Corriente x Fecha de Negocio");
            jviewer.setVisible(true);
            
        }

        catch (Exception j)
        {
            System.out.println("Mensaje de Error:"+j.getMessage());
        }
        
    }
    
    public void cerrar()
    {
                try 
                {
                    conn.close();
                } 
                catch (SQLException ex) 
                {
                    ex.printStackTrace();
                }
    }
}
